index.md
Edit

Node.js v22.6.0 부터 실험적으로 Typescript를 바로 실행하는 기능이 추가되었다. 방법은 간단한데,

우선

(1) nvm install 22.6.0 && nvm use 22.6.0 으로 Node.js 버전을 맞추고

(2) 테스트용 Typescript 코드를 작성 한 뒤,

console.log("Hello, World!");

/index.ts

(3) --experimental-strip-types 옵션과 함께 실행하면,

node --experimental-strip-types index.ts

(4) 된다.

image

참고

rhea-so commented at 2024-11-04 08:01:00

이 생각이 들더라.

image

rhea-so commented at 2024-11-04 08:06:43

아래와 같이 코드를 짜서 돌려보니까,

import * as $ from "cheerio";

const html = "<h1>Hello World</h1>";
const $html = $.load(html);

console.log($html.html());

이런 에러가 났다.

~/Projects/test  $ node --experimental-strip-types index.ts
(node:22487) ExperimentalWarning: Type Stripping is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:22487) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///Users/root/Projects/test/index.ts is not specified and it doesn't parse as CommonJS.
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
To eliminate this warning, add "type": "module" to /Users/root/Projects/test/package.json.
<html><head></head><body><h1>Hello World</h1></body></html>
~/Projects/test  $ 
(node:22487) [MODULE_TYPELESS_PACKAGE_JSON] 경고: 모듈 파일 형식:///Users/root/Projects/test/index.ts가 지정되지 않았으며 CommonJS로 구문 분석되지 않습니다.
모듈 구문이 감지되어 ES 모듈로 재파싱합니다. 이로 인해 성능 오버헤드가 발생합니다.
이 경고를 제거하려면 /Users/root/Projects/test/package.json에 "type": "모듈"을 추가합니다.
rhea-so commented at 2024-11-04 08:08:03

이제 Node.js 생태계도 적극적으로 ESM을 따르나보다.

"type": "module" 을 추가해주면,

{
  "type": "module",
  "dependencies": {
    "cheerio": "1.0.0"
  }
}

에러 없이 잘 된다.

~/Projects/test  $ node --experimental-strip-types index.ts
(node:22545) ExperimentalWarning: Type Stripping is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
<html><head></head><body><h1>Hello World</h1></body></html>
~/Projects/test  $ 
Open in GitHub Gist
Back to Home